home *** CD-ROM | disk | FTP | other *** search
/ HyperLib 1997 Winter - Disc 1 / HYPERLIB-1997-Winter-CD1.ISO.7z / HYPERLIB-1997-Winter-CD1.ISO / オンラインウェア / BUS / TMCM Software and Labs.sit / Software for TMCM 7_95 / Files for Lab 9 / Other Examples / Graph < prev    next >
Text File  |  1994-05-09  |  2KB  |  60 lines

  1. { This program draws a graph of the function y=sin(x).  It would
  2.   be easy to modify it to draw the graph of other functions. }
  3.  
  4. DECLARE xmin, xmax   { the range of values of x displayed on the horizontal axis }
  5.  
  6. DECLARE ymin, ymax   { the range of values of y displayed on the vertical axis }
  7.  
  8. DECLARE x,y  { coordinates of a point on the curve }
  9. DECLARE x_scaled, y_scaled   { corresponding coordinates on the screen; the actual
  10.                                x and y-values are scaled so that the ranges from
  11.                                xmin to xmax and ymin to ymax just fit in the
  12.                                turtles 20-by-20 rectangle. }
  13.  
  14. DECLARE PointsToPlot  { number of points to be ploted on the graph;
  15.                         more points give a more accurate graph. }
  16.  
  17.  
  18.  
  19. { Set up parameters for the graph }
  20.  
  21. xmin := -300    { math note: measured in degrees in this program }
  22. xmax := 300
  23. ymin := -2
  24. ymax := 2
  25. PointsToPlot := 100
  26.  
  27.  
  28. HideTurtle
  29.  
  30. PenUp               { Draw the horizontal axis }
  31. moveTo(-9,0)
  32. PenDown
  33. moveTo(9,0)
  34.  
  35.  
  36. PenUp               { Draw the vertical axis }
  37. moveTo(0,-9)
  38. PenDown
  39. moveTo(0,9)
  40.  
  41.  
  42. x := xmin           { x-value of first point on the curve }
  43. y := sin(x)         { corresponding y-valuw }
  44.  
  45. x_scaled := (x-xmin)/(xmax-xmin) * 18 - 9   { some math }
  46. y_scaled := (y-ymin)/(ymax-ymin) * 18 - 9
  47.  
  48. PenUp     { move to first point on graph }
  49. moveTo(x_scaled,y_scaled)
  50. PenDown
  51.  
  52. LOOP   { Draw the rest of the graph }
  53.    x := x + (xmax-xmin)/PointsToPlot
  54.    EXIT IF x > xmax
  55.    y := sin(x)
  56.    x_scaled := (x-xmin)/(xmax-xmin) * 18 - 9   { some math }
  57.    y_scaled := (y-ymin)/(ymax-ymin) * 18 - 9
  58.    moveTo(x_scaled,y_scaled)
  59. END LOOP
  60.